package com.study.condition;

import com.study.bean.RainBow;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
import org.springframework.core.type.AnnotationMetadata;

/**
 * @author wuwenbo
 * @date 2020/3/30 - 17:04
 */
public class MyImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {
    /*
    * AnnotationMetadata ：当前类额注解信息
    * BeanDefinitionRegistry ：BeanDefinition注册类
    * 把所有需要添加进来的bean ；调用 BeanDefinitionRegistry.registerBeanDefinition 手工注册进来
    * */
    public void registerBeanDefinitions(AnnotationMetadata annotationMetadata, BeanDefinitionRegistry beanDefinitionRegistry) {
       boolean definition = beanDefinitionRegistry.containsBeanDefinition("com.study.bean.Red"); //是否包含指定的 bean   的id
        boolean definition2 = beanDefinitionRegistry.containsBeanDefinition("com.study.bean.Blue");
        if(definition && definition2){
            //指定Bean 的定义信息(Bean的类型，Bean的。。。)
            RootBeanDefinition rootBeanDefinition = new RootBeanDefinition(RainBow.class);
            //注册一个Bean ，指定Bean 名
            beanDefinitionRegistry.registerBeanDefinition("rainBow",rootBeanDefinition);
        }

    }
}
